//
//  TZWStatusOriginalView.swift
//  Sinaweibotzw
//
//  Created by 檀志文 on 16/4/15.
//  Copyright © 2016年 ios檀志文. All rights reserved.
//

import UIKit


// 微博原创view
class TZWStatusOriginalView: UIView {

//   微博原型
    var status: TZWStatus?{
        didSet {
//            cell将模型设置给微博原创view后,微博原创view自己来设置自己的内容
//            设置头像
            if let profile_image_url = status?.user?.profile_image_url {
//                有图片地址
                let url = NSURL(string: profile_image_url)!
                iconView.sd_setImageWithURL(url, placeholderImage: UIImage(named: "avatar_vip"))
            }
//            用户名称
            nameLabel.text = status?.user?.screen_name
//            时间
            // 时间
            // 每次显示的时候都去重新计算这个时间
            timeLabel.text = NSDate.date(status?.created_at ?? "刚刚").sinaDateDescription()
            // 来源
            sourceLabel.text = status?.source
            // 微博内容
            contentLabel.text = status?.text
            // 设置用户的会员等级
            memberView.image = status?.user?.mbrankImage
            //          认证类型
            verifiedView.image = status?.user?.verifiedImage
            // 将微博模型的图片url设置给HMStatusPictureView,HMStatusPictureView会自己去计算宽高
            pictureView.pictureURLs = status?.storePicutreURLs
//          当没有图片的时候，pictureView 距离contentlable的底部不需要8 的约束
            pictureView.snp_updateConstraints { (make) -> Void in
                let margin = status?.storePicutreURLs == nil ? 0 : TZWStatusCellMargin
                make.top.equalTo(contentLabel.snp_bottom).offset(margin)
            }

        }
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override init(frame: CGRect) {
        super.init(frame:frame)
        backgroundColor = UIColor.whiteColor()
        prepareUI()
    }

    private func prepareUI(){
        
//        1 添加子控件
        addSubview(iconView)
        addSubview(nameLabel)
        addSubview(timeLabel)
        addSubview(sourceLabel)
        addSubview(memberView)
        addSubview(verifiedView)
        addSubview(contentLabel)
        addSubview(pictureView)
    
//        2 添加约束
        iconView.snp_makeConstraints { (make) -> Void in
            make.leading.top.equalTo(self).offset(TZWStatusCellMargin)
            make.size.equalTo(CGSize(width: TZWStatusIconWH, height: TZWStatusIconWH))
        }
//        名称
        nameLabel.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(iconView)
            make.leading.equalTo(iconView.snp_trailing).offset(TZWStatusCellMargin)
        }
//        时间
        timeLabel.snp_makeConstraints { (make) -> Void in
            make.bottom.equalTo(iconView)
            make.leading.equalTo(nameLabel)
        }
//        来源
        sourceLabel.snp_makeConstraints { (make) -> Void in
            make.leading.equalTo(timeLabel.snp_trailing).offset(TZWStatusCellMargin)
            make.centerY.equalTo(timeLabel)
        }
//        会员等级
        memberView.snp_makeConstraints { (make) -> Void in
            make.centerY.equalTo(nameLabel)
            make.leading.equalTo(nameLabel.snp_trailing).offset(TZWStatusCellMargin)
        }
        
//      认证图标
        verifiedView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(iconView.snp_trailing)
            make.centerY.equalTo(iconView.snp_bottom)
            make.size.equalTo(CGSize(width: 17, height: 17))
        }
//      微博内容
        contentLabel.snp_makeConstraints { (make) -> Void in
            make.leading.equalTo(self).offset(TZWStatusCellMargin)
            make.top.equalTo(iconView.snp_bottom).offset(TZWStatusCellMargin)
            make.trailing.equalTo(self).offset(-TZWStatusCellMargin)
        }
///     微博配图视图
        pictureView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(contentLabel.snp_bottom).offset(TZWStatusCellMargin)
            make.leading.equalTo(self).offset(TZWStatusCellMargin)
            make.size.equalTo(CGSizeZero)
        }
        
//      自定义的原创微博view的底部 和contentlabel 的底部重合，
        self.snp_makeConstraints { (make) -> Void in
            make.bottom.equalTo(pictureView).offset(TZWStatusCellMargin)
        }
    }

//   MARK: 懒加载
//    头像: 
    private lazy var iconView : UIImageView = {
       let imageView = UIImageView(image: UIImage(named: "avatar"))
//        设置
        imageView.layer.cornerRadius = 17.5
        imageView.layer.masksToBounds = true
        
        return imageView

    }()
/// 用户名称Label
    private lazy var nameLabel: UILabel = UILabel(fontSize: TZWStatusNameFontSize, textColor: UIColor.darkGrayColor())
    
/// 时间label
    private lazy var timeLabel: UILabel = UILabel(fontSize: TZWStatusTimeFontSize, textColor: UIColor.orangeColor())
    /// 来源label
    private lazy var sourceLabel: UILabel = UILabel(fontSize: TZWStatusTimeFontSize, textColor: UIColor.lightGrayColor())

// 会员图标
    private lazy var memberView: UIImageView = UIImageView(image: UIImage(named: "common_icon_membership_expired"))
// 认证图标
    private lazy var verifiedView: UIImageView = UIImageView(image: UIImage(named: "avatar_vip"))
// 原创微博的内容
    private lazy var contentLabel: UILabel = {
        let label = UILabel()
        
        // 设置
        label.font = UIFont.systemFontOfSize(TZWStatusContentFontSize)
        label.textColor = UIColor.darkGrayColor()
        
        let result = arc4random_uniform(100) % 2
        label.text = result == 0 ? "要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:要下大雨了:" : "明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨明天不要下雨"
        label.sizeToFit()
        label.numberOfLines = 0
        
        return label
        
    }()
    
//    原创 微博 配图 视图
    private lazy var pictureView: TZWStatusPictureView = TZWStatusPictureView()
    
}


